home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / ip / trace / tcpdump-2.2.1 / bpf / net / HISTORY < prev    next >
Encoding:
Text File  |  1990-07-26  |  5.9 KB  |  135 lines

  1.  
  2. This file was extracted from a comment in net/enet.c (now net/bpf.c).
  3.  
  4.  
  5. 16 July 1990 Steven McCanne    Lawrence Berekeley Laboratory
  6.     Berkeley Packet Filter (bpf) created from major revisions to enet.
  7.  
  8. 7 October 1985    Jeff Mogul    Stanford
  9.     Removed ENMAXOPENS limitation; available minors are now
  10.     dynamically allocated to interfaces, out of pool of NENETFILTER
  11.     minors.
  12.     Certain arrays formerly in the enState structure are now global.
  13.     Depends on modified openi() function so that enetopen() need
  14.     only be called once.
  15.     Remove support for "kernel access", it won't ever be used again.
  16.     Added EIOCMFREE ioctl.
  17.  
  18. 17 October 1984    Jeff Mogul    Stanford
  19.     More performance improvements:
  20.     Added ENF_CAND, ENF_COR, ENF_CNAND, and ENF_CNOR, short-circuit
  21.     operators, to make filters run faster.
  22.     All evaluate "(*sp++ == *sp++)":
  23.     ENF_CAND: returns false immediately if result is false, otherwise
  24.         continue
  25.     ENF_COR: returns true immediately if result is true, otherwise
  26.         continue
  27.     ENF_CNAND: returns true immediately if result is false, otherwise
  28.         continue
  29.     ENF_CNOR: returns false immediately if result is true, otherwise
  30.         continue
  31.     Also added ENF_NEQ to complement ENF_EQ
  32.     - Maintain count of received packets per filter, dynamically
  33.     re-organize filter queue to keep highly active filters in
  34.     front of queue (but maintaining priority order), if they are
  35.     "high priority" filters.
  36.  
  37. 2 October 1984    Jeff Mogul    Stanford
  38.     Made a few changes to enDoFilter() to speed it up, since profiling
  39.     shows it to be rather popular:
  40.     - precompute maximum word in packet and address of end of
  41.     filters (thereby moving this code out of "inner loop").
  42.     - minor re-arrangement to avoid re-evaluating a
  43.     common subexpression.
  44.     - changed #ifdef DEBUG in a few routines to #ifdef INNERDEBUG,
  45.     so that code in inner loops isn't always testing the enDebug
  46.     flag; this not only costs directly, but also breaks up some
  47.     basic blocks that the optimizer could play with.
  48.     - added enOneCopy flag; if true, then never deliver more than
  49.     one copy of a packet.  This is equivalent to giving everyone
  50.     a "high priority" device, and cuts down the number of superfluous
  51.     calls to enDoFilter(). [Temporary hack, will remove this!]
  52.  
  53. 24 August 1984    Jeff Mogul    Stanford
  54.     YA bug with sleeping in enetwrite(); straightened out handling
  55.     of counts in enKludgeSleep so that they indicate the number
  56.     of sleeps in progress. Maybe I've got this right, now?
  57.     Also, don't sleep forever (since the net might be down).
  58.  
  59. 17 July 1984    Jeff Mogul    Stanford
  60.     Bug fix: in enetwrite(), several problems with sleeping on
  61.     IF_QFULL:
  62.     - don't do it for kernel mode writes.
  63.     - count # of procs sleeping, to avoid lost wakeups.  Old
  64.         scheme would only wake up the first sleeper.
  65.     - using sleeper-count, avoid using more than one timeout
  66.         table entry per device; old scheme caused timeout table panics
  67.     - trap interupted sleeps using setjmp, so that we can deallocate
  68.         packet header and mbufs; otherwise we lost them and panicked.
  69.  
  70. 5 July 1984    Jeff Mogul    Stanford
  71.     Bug fix: in enetwrite() make sure enP_RefCount is zero before
  72.     deallocating "packet".  Otherwise, "packets" get lost, and
  73.     take mbufs (and ultimately, the system) with them.
  74.  
  75. 8 December 1983    Jeffrey Mogul    Stanford
  76.     Fixed bug in enetwrite() that eventually caused    allocator
  77.     to run out of packets and panic.  If enetwrite() returns
  78.     an error it should first deallocate any packets it has allocated.
  79.  
  80. 10 November 1983    Jeffrey Mogul    Stanford
  81.     Slight restructuring for support of 10mb ethers;
  82.     - added the EIOCDEVP ioctl
  83.     - removed the EIOCMTU ioctl (subsumed by EIOCDEVP)
  84.     This requires an additional parameter to the enetattach
  85.     call so that the device driver can specify things.
  86.  
  87.     Also, cleaned up the enDebug scheme by adding symbolic
  88.     definitions for the bits.
  89.  
  90. 25-Apr-83    Jeffrey Mogul    Stanford
  91.     Began conversion to 4.2BSD.  This involves removing all
  92.         references to the actual hardware.
  93.     Changed read/write interface to use uio scheme.
  94.     Changed ioctl interface to "new style"; this places a hard
  95.         limit on the size of a filter (about 128 bytes).
  96.     "Packets" now point to mbufs, not private buffers.
  97.     Filter can only access data in first mbuf (about 50 words worst case);
  98.         this is long enough for all Pup purposes.
  99.     Added EIOCMTU ioctl to get MTU (max packet size).
  100.     Added an enetselect() routine and other select() support.
  101.     Other stuff is (more or less) left intact.
  102.     Most previous history comments removed.
  103.     Changed some names from enXXXX to enetXXXX to avoid confusion(?)
  104.  
  105. 10-Aug-82  Mike Accetta (mja) at Carnegie-Mellon University
  106.     Added new EIOCMBIS and EIOCMBIC ioctl calls to set and clear
  107.     bits in mode word;  added mode bit ENHOLDSIG which suppresses
  108.     the resetting of an enabled signal after it is sent (to be
  109.     used inconjunction with the SIGHOLD mechanism);  changed
  110.     EIOCGETP to zero pad word for future compatibility;  changed enwrite()
  111.     to enforce correct source host address on output packets (V3.05e).
  112.     (Stanford already uses long timeout value and has no pad word - JCM)
  113.     [Last change before 4.2BSD conversion starts.]
  114.  
  115. 01-Dec-81  Mike Accetta (mja) at Carnegie-Mellon University
  116.     Fixed bug in timeout handling caused by missing "break" in the
  117.     "switch" state check within enetread().  This caused all reads
  118.     to be preceeded by a bogus timeout.  In addition, fixed another
  119.     bug in signal processing by also recording process ID of
  120.     process to signal when an input packet is available.  This is
  121.     necessary because it is possible for a process with an enabled
  122.     signal to fork and exit with no guarantee that the child will
  123.     reenable the signal.  Thus under appropriately bizarre race
  124.     conditions, an incoming packet to the child can cause a signal
  125.     to be sent to the unsuspecting process which inherited the
  126.     process slot of the parent.  Of course, if the PID's wrap around
  127.     AND the inheriting process has the same PID, well ... (V3.03d).
  128.  
  129. 22-Feb-80  Rick Rashid (rfr) at Carnegie-Mellon University
  130.     Rewritten to provide multiple user access via user settable
  131.     filters (V1.05).
  132.  
  133. 18-Jan-80  Mike Accetta (mja) at Carnegie-Mellon University
  134.     Created (V1.00).
  135.